/** ==================================================================================== **/
/** 							Commutazione della lingua a runtime						 **/
/** ==================================================================================== **/

/** 
 * Funzione che utilizza il servizio di $translate e il suo metodo di use() per cambiare la lingua  in fase di esecuzione. 
 * Avremo bisogno di iniettare il servizio $translate nel controllore della nostra applicazione e aggiungere una 
 * funzione allo $scope dell' applicazione.		
 * 
 * Il metodo use() restituisce la chiave lingua della lingua corrente, o quando si passa una chiave di linguaggio come argomento, 
 * dice al servizio di utilizzare la lingua corrispondente.
 * 
 * Ad esempio, il metodo use() nella forma:
 * 
 *  $translate.use(); --> Restituisce la chiave del language corrente
 *  $translate.use('en'); --> Imposta la lingua attiva a `en`
 *  
 *  Lato HTML serve inserire una direttiva ng-click su ogni pulsante, che chiama la funzione che cambia la lingua in fase di esecuzione:
 *  
 *  <div ng-controller="Ctrl">
 *     <button ng-click="changeLanguage('de')" translate="BUTTON_TEXT_DE"></button>
 *     <button ng-click="changeLanguage('en')" translate="BUTTON_TEXT_EN"></button>
 *  </div>
 */
BootApplication.controller('TranslateController', [ '$scope','$translate','$log','$rootScope', "configuration", "$window", function($scope, $translate, $log, $rootScope, appConstants, $window) {
	
   /** Selezione del linguaggio di default della select **/
	
   var cookieLang = $translate.storage().get($translate.storageKey());
	
   $rootScope.language = (angular.isDefined(cookieLang) && cookieLang != null) ? cookieLang : appConstants.getParam("Constants").DEFAULT_LANGUAGE;

   $scope.language = $rootScope.language!=undefined ? $rootScope.language : 'it';
   /**
    * Funzione che cambia la lingua in fase di esecuzione
    */
   $scope.changeLanguageApplication = function ( lang ) {
		
	   console.log("Cambio language applicazione in : " + lang);
		
	   $scope.language 		= lang;
	   
	   $rootScope.language 	= $scope.language;
		
	   $window.location.reload();
	   
	   $translate.use($rootScope.language);
   }
}]);

